package org.myspringframework.beans.factory;

import org.myspringframework.beans.BeansException;
import org.myspringframework.beans.factory.config.beandefinition.BeanDefinition;

/**
 * 主要用于表示具有可配置和可列举特性的BeanFactory。
 *
 * 提供分析和修改Bean以及预先实例化的操作接口
 * 配置接口，由大多数listableBeanFactory实现。除了ConfigurableBeanFactory之外，它还提供了分析和修改beanDefinition以及预实例化单例的工具.
 */
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    //预实例化单例bean
    void preInstantiateSingletons() throws BeansException;



}